use std::default::Default;

use chrono::{NaiveDateTime};
use sea_orm::entity::prelude::*;
use sea_orm::FromQueryResult;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Default, Serialize, Deserialize)]
#[sea_orm(table_name = "account_info")]
pub struct Model {
    #[sea_orm(primary_key)]
    pub id: i64,                            // 主键,自增
    pub off_on: Option<i32>,                // 监控开关(1=开启,0=关闭)
    pub zh: Option<String>,                 // 账号
    pub zh_type: Option<String>,            // 账号类型(1=QQ安卓,2=QQ苹果,3=微信安卓,4=微信苹果)
    pub wgname: Option<String>,             // 玩家游戏昵称
    pub serid: Option<String>,              // 区服ID
    pub ser: Option<String>,                // 区服

    pub ydstatus: Option<i32>,              // 营地状态(枚举值)
    pub erjpwd: Option<i32>,                // 二级密码
    pub zb_short: Option<String>,           // 装备简短描述
    pub jwstatus: Option<i32>,              // 禁玩状态(枚举值)

    pub fhremark: Option<String>,           // 错误描述备注
    pub remark: Option<String>,             // 用户备注
    pub usort: Option<i32>,                 // 排序
    pub create_time: NaiveDateTime,       // 创建时间
    pub update_time: NaiveDateTime,       // 修改时间

    pub ydstatus_time: Option<NaiveDateTime>, // 营地状态最后同步时间
    pub ejpwd_time: Option<NaiveDateTime>,    // 二级密码最后同步时间
    pub zb_time: Option<NaiveDateTime>,       // 装备信息最后同步时间
    pub jwstatus_time: Option<NaiveDateTime>, // 禁玩状态最后同步时间

    pub hjstatus_time: Option<NaiveDateTime>, // 货架状态最后同步时间
    pub zh_cfg: Option<String>,                 // 账号配置(建议JSON格式)

    pub zhw_hid: Option<String>,                // zhw货架
    pub zhw_zt: Option<String>,                 // zhw状态(枚举值)
    pub zhw_money: Option<String>,              // zhw单价(存储分为单位的金额)

    pub uhz_hid: Option<String>,                // uhz货架
    pub uhz_zt: Option<String>,                 // uhz状态(枚举值)
    pub uhz_money: Option<String>,              // uhz单价(存储分为单位的金额)

    pub zz_hid: Option<String>,                 // zz货架
    pub zz_zt: Option<String>,                  // zz状态(枚举值)
    pub zz_money: Option<String>,               // zz单价(存储分为单位的金额)
}

#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {}

impl ActiveModelBehavior for ActiveModel {}


// 定义查询结果结构体
#[derive(Debug, FromQueryResult, Serialize, Deserialize)]
pub struct AccountInfoResult {
    pub id: i32,
    pub name: String,
}
